#ifndef __MAIN_H
#define __MAIN_H

#define YYSTYPE ast_token_ptr

typedef struct _ast_token {
	unsigned int line;
	enum {
		TOKEN,
		EXPR,
		BLOCK,
		SPEC
	} type;
	enum {
		INTEGER,
		SYMBOL
	} data_type;
	char *stringValue;
	unsigned int i;
	struct _ast_token *child;
	struct _ast_token *next;
} ast_token, *ast_token_ptr;

extern YYSTYPE yylval;
extern unsigned int line;
extern ast_token_ptr ast_result;

ast_token_ptr create_token(unsigned int type);

#endif
